var Localidad = (function () {
  var success = function (data) {
    this.id = this.marker.id = data[0].id_localidad;
    this.data = data;
  };

  var create = function () {
    var lista_departamentos =
        $( '.info-' + this.index + ' [name="lista_departamentos"]'),

        id_dep =
        $( '.info-' + this.index + ' [name="id_dep"]');

    lista_departamentos.change(function () {
      id_dep.val(hashDepartamentos.indexOf(lista_departamentos.val()) + 1);
    });

    id_dep.val(1);
  };

  var hashDepartamentos = [
    'Cochabamba', //1
    'La Paz', //2
    'Santa Cruz', //3
    'Oruro', //4
    'Potosí', //5
    'Chuquisaca', //6
    'Tarija', //7
    'Beni', //8
    'Pando' //9
  ];

  return {
    create : function () {
      var localidad =
          MapItem.create(7, 'nueva localidad',
                         ['nombre', 'num_habitantes', 'fec_fundacion',
                          'descr', 'latitud', 'longitud', 'id_dep'],
                         'nueva_localidad', success, create);
      localidad.hashDepartamentos = hashDepartamentos;

      return localidad;
    }
  };
})();

var Lugar = (function () {
  var success = function (data) {
    this.id = this.marker.id = data[0].id_lugar;
    this.data = data;
  };

  var create = function () {
  };

  var hashDepartamentos = [
    'Cochabamba', //1
    'La Paz', //2
    'Santa Cruz', //3
    'Oruro', //4
    'Potosí', //5
    'Chuquisaca', //6
    'Tarija', //7
    'Beni', //8
    'Pando' //9
  ];

  return {
    create : function () {
      var parada =
          MapItem.create(1, 'nuevo lugar',
                         ['nombre', 'latitud', 'longitud',
                          'espatrimonio', 'id_dep', 'id_localidad'],
                         'nueva_parada', success, create);
      parada.hashDepartamentos = hashDepartamentos;
      return parada;
    }
  };
})();

var ServicioBasico = (function () {
  var success = function (data) {
    this.id = this.marker.id = data[0].id_servicioB;
    this.data = data;
  };

  var create = function () {
  };

  return {
    create : function () {
      var parada =
          MapItem.create(2, 'nuevo servicio básico',
                         ['nombre', 'latitud', 'longitud'],
                         'nueva_parada', success, create);
      return parada;
    }
  };
})();

var Parada = (function () {
  var success = function (data) {
    this.marker.id = this.id = data[0].id_parada;
    this.data = data;
  };

  var create = function () {
  };

  return {
    create : function () {
      var parada =
          MapItem.create(4, 'nueva parada',
                         ['nombre', 'latitud', 'longitud'],
                         'nueva_parada', success, create);
      return parada;
    }
  };
})();

var mapControllers = [
  null,
  Lugar,
  ServicioBasico,
  null,
  Parada,
  null,
  null,
  Localidad
];
